[Edison]ボタンでLEDを点灯させる[mraa]
LEDとボタンを使いましょう
この記事では光センサーをつかってみました。 今回はセンサーでなく、ボタンを押したらLEDが光る仕組みをつくってみましょう。
動作環境
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.9.4
- Edisonファームウェア : edison-rel1-maint-weekly_build_16_2014-10-14_14-56-19
- Grove : Grove Starter kit
ここでやっているように、初期セットアップとwifiセットアップは終わらせておいてください。 また、Groveのベースシールドはここを見て装着しておきましょう。
LEDソケットとボタンを装着
Grove Starter kitのボタンモジュールをA0に、LEDソケットに赤色LEDをつけてD8に接続します。
プログラムを作成
シリアル接続でEdisonにログインし、適当な場所に下記ファイルを作成しましょう。 ※xdkで作成 or scpで転送でもOK
//app.js var m = require('mraa'); var button = new m.Aio(0); var led = new m.Gpio(8); led.dir(m.DIR_OUT); setInterval(function(){ var buttonValue = button.read(); if(buttonValue === 0) { console.log("off"); led.write(0); } else { console.log("on"); led.write(1); } },1000);
このプログラムでは1秒毎にボタンの状態を取得します。 そのときにボタンが押されていたら(取得した値が0以外)LED点灯、そうでなければLEDを消灯させます。
プログラムを実行
nodeコマンドで上記プログラムを実行してみます。 ボタンを押した状態だとLED点灯、離した状態だと消灯します。(1秒間隔なので多少遅延はありますが)
root@edison:~# node app.js ・ ・
まとめ
ボタンやLEDも簡単に使うことができましたね。 他にもおもしろそうなモジュールがあるので、今後いろいろ試していきます。